/**
 *    @file       synworkthread.h
 *
 *    @brief      
 *    @details
 *
 *    @version    1.0
 *    @date       02/12/2014 04:57:05 PM
 *
 *    @author     Theophilus (), wangtf418@gmail.com 
 */
#ifndef _SF_SYNWORKTHREAD_H_
#define _SF_SYNWORKTHREAD_H_
#include "workthread.h"
#include "synqueue.h"

class synworkthread : public workthread
{
public:
	synworkthread(bf_uint32_t type, bf_uint32_t size, bf_uint32_t index, const comargs *args);
	virtual ~synworkthread();

public:
	virtual bf_int_t init();
	virtual bf_int_t run();
	virtual void init_run();
	virtual void uninit_run();

public:
	virtual bf_int_t put_msg(message *msg);
	virtual bf_size_t get_msgq_len();

protected:
	synqueue<message> m_msg_queue;
};

#endif

